package com.jinmdz.fmis.api.api.model.settlement;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jinmdz.fmis.common.annotation.AnValidate;
import com.jinmdz.fmis.common.constant.EValidateCode;
import com.jinmdz.fmis.core.base.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 费用结算请求数据
 *
 * @author LiCongLu
 * @date 2020-02-19 11:15
 */
@ApiModel(value = "费用结算请求数据", description = "费用结算请求数据")
public class ChargeAccountsSettleData extends BaseBean {
    /**
     * 业务编码
     */
    @AnValidate(name = "业务编码", required = true)
    @ApiModelProperty(value = "业务编码", name = "businessCode", position = 1)
    private String businessCode;

    /**
     * 结算金额
     */
    @AnValidate(name = "结算金额", required = true, code = EValidateCode.NO_LESS_ZERO)
    @ApiModelProperty(value = "结算金额", name = "settleCharge", position = 2)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal settleCharge;

    /**
     * 结算时间
     */
    @AnValidate(name = "结算时间")
    @ApiModelProperty(value = "结算时间", name = "settleTime", example = "2020-02-19 11:25", position = 3)
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date settleTime;

    /**
     * 收据号
     */
    @AnValidate(name = "收据号")
    @ApiModelProperty(value = "收据号", name = "receiptNo", position = 4)
    private String receiptNo;

    /**
     * 备注
     */
    @AnValidate(name = "备注")
    @ApiModelProperty(value = "备注", name = "remark", position = 5)
    private String remark;

    public String getBusinessCode() {
        return businessCode;
    }

    public ChargeAccountsSettleData setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public BigDecimal getSettleCharge() {
        return settleCharge;
    }

    public ChargeAccountsSettleData setSettleCharge(BigDecimal settleCharge) {
        this.settleCharge = settleCharge;
        return this;
    }

    public Date getSettleTime() {
        return settleTime;
    }

    public ChargeAccountsSettleData setSettleTime(Date settleTime) {
        this.settleTime = settleTime;
        return this;
    }

    public String getReceiptNo() {
        return receiptNo;
    }

    public ChargeAccountsSettleData setReceiptNo(String receiptNo) {
        this.receiptNo = receiptNo;
        return this;
    }

    public String getRemark() {
        return remark;
    }

    public ChargeAccountsSettleData setRemark(String remark) {
        this.remark = remark;
        return this;
    }
}
